#pragma once
#include "singleton.h"

class IGameStateBase
{
public:
    virtual void Reset() = 0;
    virtual void DoAction() = 0;
    virtual bool NeedDel() { return false; }
public:
    CString Name;
    DWORD   Index;
    DWORD m_dwGCDtime;
    DWORD m_dwDoorCount;
};
class CGameAnalyze;
class CGameStateMgr:public Singleton<CGameStateMgr>
{
    friend class CGameAnalyze;

private:
    typedef std::vector<IGameStateBase*>    VecGameState;
    VecGameState        m_GameState;
    IGameStateBase      *pCur, *pLast;
public:
    CGameStateMgr();
    ~CGameStateMgr(){}
    bool Init();
    bool Run();
    bool Destory();
    
};